%%% -*- mode: erlang -*-
-ifndef(rtps_sedp_hrl).
-define(rtps_sedp_hrl, true).

%% NB: SubscriptionBuiltinTopicData and PublicationBuiltinTopicData
%% are nearly identical except for ownership_strength (see Figure 8.31
%% p134). It hasn't been verified that this is correct or an error in
%% the specs.

-record(reader_proxy, 
	{remote_reader_guid :: rtps:guid(),
	 expects_inline_qos :: boolean() | undefined,
	 unicast_locator_list :: [rtps:locator()] | undefined,
	 multicast_locator_list :: [rtps:locator()] | undefined}).

-record(subscription_builtin_topic_data,
	{deadline :: rtps_qos:qos(),
	 destination_order :: rtps_qos:qos(),
	 durability :: rtps_qos:qos(),
	 durability_service :: rtps_qos:qos(),
	 group_data :: rtps_qos:qos(),
	 key :: rtps_qos:qos(),
	 latency_budget :: rtps_qos:qos(),
	 lifespan :: rtps_qos:qos(),
	 liveliness :: rtps_qos:qos(),
	 ownership :: rtps_qos:qos(),
	 participant_key :: rtps_qos:qos(),
	 partition :: rtps_qos:qos(),
	 presentation :: rtps_qos:qos(),
	 reliability :: rtps_qos:qos(),
	 time_based_filter :: rtps_qos:qos(),
	 topic_data :: rtps_qos:qos(),
	 topic_name :: rtps_qos:qos(),
	 type_name :: rtps_qos:qos(),
	 user_data :: rtps_qos:qos()}).

-record(writer_proxy, 
	{remote_writer_guid :: rtps:guid(),
	 unicast_locator_list :: [rtps:locator()] | undefined,
	 multicast_locator_list :: [rtps:locator()] | undefined}).

-record(publication_builtin_topic_data,
	{deadline :: rtps_qos:qos(),
	 destination_order :: rtps_qos:qos(),
	 durability :: rtps_qos:qos(),
	 durability_service :: rtps_qos:qos(),
	 group_data :: rtps_qos:qos(),
	 key :: rtps_qos:qos(),
	 latency_budget :: rtps_qos:qos(),
	 lifespan :: rtps_qos:qos(),
	 liveliness :: rtps_qos:qos(),
	 ownership :: rtps_qos:qos(),
	 ownership_strength :: rtps_qos:qos(),
	 participant_key :: rtps_qos:qos(),
	 partition :: rtps_qos:qos(),
	 presentation :: rtps_qos:qos(),
	 reliability :: rtps_qos:qos(),
	 time_based_filter :: rtps_qos:qos(),
	 topic_data :: rtps_qos:qos(),
	 topic_name :: rtps_qos:qos(),
	 type_name :: rtps_qos:qos(),
	 user_data :: rtps_qos:qos()}).

-record(topic_builtin_topic_data,
	{deadline :: rtps_qos:qos(),
	 destination_order :: rtps_qos:qos(),
	 durability :: rtps_qos:qos(),
	 history :: rtps_qos:qos(),
	 key :: rtps_qos:qos(),
	 latency_budget :: rtps_qos:qos(),
	 lifespan :: rtps_qos:qos(),
	 liveliness :: rtps_qos:qos(),
	 name :: rtps_qos:qos(),
	 ownership :: rtps_qos:qos(),
	 presentation :: rtps_qos:qos(),
	 reliability :: rtps_qos:qos(),
	 resource_limits :: rtps_qos:qos(),
	 topic_data :: rtps_qos:qos(),
	 transport_priority :: rtps_qos:qos(),
	 type_name :: rtps_qos:qos()}).

-endif.

